package com.fwtai.core;

import com.fwtai.bean.PageFormData;
import com.fwtai.datasource.DaoHandle;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 省市县区域访问数据库
 * @作者 田应平
 * @版本 v1.0
 * @创建时间 2020/4/9 13:43
 * @QQ号码 444141300
 * @Email service@yinlz.com
 * @官网 <url>http://www.fwtai.com</url>
 */
@Repository
public class AreaDao{

  private final DaoHandle dao;

  public AreaDao(final DaoHandle dao){
    this.dao = dao;
  }

  public int add(final PageFormData pageFormData){
    return dao.execute("sys_area.add",pageFormData);
  }

  public String queryExistById(final String kid){
    return dao.queryForString("sys_area.queryExistById",kid);
  }

  public int edit(final PageFormData pageFormData){
    return dao.execute("sys_area.edit",pageFormData);
  }

  public HashMap<String, Object> queryById(final String kid){
    return dao.queryForHashMap("sys_area.queryById",kid);
  }

  public int delById(final String kid){
    return dao.execute("sys_area.delById",kid);
  }

  public int delByKeys(final ArrayList<String> list){
    return dao.execute("sys_area.delByKeys",list);
  }

  public HashMap<String,Object> listData(final PageFormData pageFormData){
    return dao.queryForPage(pageFormData,"sys_area.listData","sys_area.listTotal");
  }

  public List<Object> getListData(final PageFormData formData){
    return dao.queryListEntity("sys_area.listData",formData);
  }

  public Integer getListTotal(final PageFormData formData){
    return dao.queryForInteger("sys_area.listTotal",formData);
  }

  public List<Map<String,Object>> getListArea(final String pid){
    return dao.queryForListMap("sys_area.getListArea",pid);
  }

  public List<Map<String,Object>> getAreaOpts(final String pid){
    return dao.queryForListMap("sys_area.getAreaOpts",pid);
  }

  public int addProxy(final HashMap<String,Object> params){
    return dao.execute("sys_area.addProxy",params);
  }

  public List<Long> getAreaParent(final Long areaId){
    return dao.queryListEntity("sys_area.getAreaParent",areaId);
  }

  //回写编辑时的多级区域列表
  public List<HashMap<String,Object>> getPullDown(final PageFormData formData){
    return dao.queryForListHashMap("sys_area.getPullDown",formData);
  }

  public List<HashMap<String,Object>> getAreaTree(final long pid){
    return dao.queryForListHashMap("sys_area.getAreaTree",pid);
  }
}